#include <iostream>
using namespace std;
#include <string>

//string 字符串拼接
/*
string& operator+=(const char* str);                
string& operator+=(const char c);
string& operator+=(const string& str);
string& append(const char* s);                      //把字符串s连接到当前字符串结尾
string& append(const char* s, int n);               //把字符串s的前n个字符连接到当前字符串结尾
string& append(const string& s);                    //同operator+=(const string& str)
string& append(const string& s, int pos, int n);    //字符串s中从pos开始的n个字符连接到字符串结尾
*/

void test1()
{
    string str1 = "我";

    //string& operator+=(const char* str);
    str1 += "爱编程";
    cout << "str1 = " << str1 << endl;

    //string& operator+=(const char c);
    str1 += ';';
    cout << "str1 = " << str1 << endl;

    //string& operator+=(const string& str);
    string str2 = "C++ Java Python";
    str1 += str2;
    cout << str1 << endl;

    //string& append(const char* s);
    //把字符串s连接到当前字符串结尾
    string str3 = "I";
    str3.append(" love");
    cout << "str3 = " << str3 << endl;

    //string& append(const char* s, int n);
    //把字符串s的前n个字符连接到当前字符串结尾
    str3.append("programming abcdef", 11);
    cout << "str3 = " << str3 << endl;

    //string& append(const string & s);
    //同operator+=(const string& str)
    str3.append(str2);
    cout << "str3 = " << str3 << endl;

    
    //string& append(const string & s, int pos, int n);
    //字符串s中从pos开始的n个字符连接到字符串结尾
    str3.append(str2, 3, 5);//只追加 str2的一部分
    //参数2 从哪个位置开始截取，参数3 截取字符个数
    cout << "str3 = " << str3 << endl;

}

int main()
{
    test1();
    return 0;
}